<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
            Promise.all()方法接收一个由promise实例组成的数组作为参数，如果数组里的所有的promise实例都为成功状态，那么这个方法也会返回成功，否则只要有一个失败的，那么这个方法就会返回失败。如果数组里的promise是异步的，那么就等所有的都拿到结果

            Promise.race()方法也是接收一个由promise实例组成的数组作为参数，不同于上面，这个方法返回的结果会以数组中第一个出来结果的promise实例的结果为标准。如果第一个出结果的返回的是成功状态，那么这个race方法也会返回一个成功的promise实例。反之返回失败的
        */

        let p1, p2, p3 = Promise.resolve('111')
        let p4 = new Promise((resolve, reject) => {
            setTimeout(() => {
                reject('我是一个失败的promise实例')
            }, 2000);
        })
        console.log(Promise.all([p1, p2, p3, p4]));


        let p5 = new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve('成功了')
            }, 1000);
        })

        let p6 = new Promise((resolve,reject)=>{
            setTimeout(() => {
                reject('失败了')
            }, 2000);
        })
        
        Promise.race([p5,p6]).then((res)=>{console.log(res)},(err)=>{console.log(err)})
    </script>
</body>

</html>